//联系人表单表格
var $contactsTable = $('#contactsTableList');
//跟进记录表单表格
var $followUpRecordTable = $('#followUpRecordTableList');
//拜访记录表单表格
var $visitRecordTable = $('#visitRecordTableList');
//合同订单
var $contractOrderTable = $('#contractOrderTableList');
var customerId = $('#customerId').val();//客户ID
var singleProductCustomerId = $('#singleProductCustomerId').val();//单品客户主键ID

//防止表头与表格不对齐
$(window).resize(function () {
    $contactsTable.bootstrapTable('resetView');
    $followUpRecordTable.bootstrapTable('resetView');
    $visitRecordTable.bootstrapTable('resetView');
    $contractOrderTable.bootstrapTable('resetView');
});

$(function () {
    //联系人
    contactsTableInit();

    // 编辑弹窗显示时刷新弹窗内容
    $('.modal').on('hide.bs.modal', function () {
        $(this).find('form').bootstrapValidator('resetForm');
    });

    $('select').selectpicker({
        size: 12
    });
    $('.modal').on('hidden.bs.modal', function () {
        $(this).find('select').selectpicker('refresh');
    }).on('show.bs.modal', function () {
        $(this).find('select').selectpicker('refresh');
    });

    $('#addContactForm').bootstrapValidator({
        fields: {
            contactNameAdd: {
                validators: {
                    notEmpty: {
                        message: '联系人姓名不能为空'
                    },
                    stringLength: {
                        max: 18,
                        message: '联系人姓名长度不能大于18个字符！'
                    }
                }
            },
            contactInformationAdd: {
                validators: {
                    notEmpty: {
                        message: '请输入联系方式'
                    },
                    regexp: {
                        regexp: /^\d+$/,
                        message: '手机号码只能是数字'
                    },
                    stringLength:{
                        max: 20,
                        message:'请输入正确的联系方式'
                    }
                }
            },
            contactPositionAdd: {
                validators: {
                    notEmpty: {
                        message: '职务不能为空'
                    }
                }
            },
            isSeniorExecutive: {
                validators: {
                    notEmpty: {
                        message: '职务状态不能为空'
                    }
                }
            },
            onTheJobSituationAdd: {
                validators: {
                    notEmpty: {
                        message: '在职情况不能为空'
                    }
                }
            },
            wxAdd: {
                validators: {
                    notEmpty: {
                        message: '微信不能为空'
                    }
                }
            },
            mailBoxAdd: {
                validators: {
                    notEmpty: {
                        message: '邮箱不能为空'
                    },
                    emailAddress: {
                        message: '邮箱格式不正确'
                    }
                }
            },
        }
    });
});


/**
 * 单品合同订单列表
 */
function singleContractOrderTableInit() {
    $contractOrderTable.bootstrapTable('destroy');
    $contractOrderTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerContract/selectSingleContractList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-/-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'contractId',
        idField: 'contractId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10,20,50]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId : customerId,
                bs : 1
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'contractId', visible: false},
            {title: '订单ID', field: 'orderId', visible: false},
            {title: '是否是会员合同', field: 'whetherCheck', visible: false},
            {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '52', formatter: indexFormat},
            {title: '合同编号' ,field: 'contractNumber',align: 'left', valign: 'middle', width: '120', class: 'ellipsis'},
            {title: '客户名称', field: 'customerName',align: 'left', valign: 'middle'},
            {title: '联系人', field: 'contactName',align: 'left', valign: 'middle',formatter: contactNameFormat},
            {title: '合同状态', field: 'contractStatus',align: 'left', valign: 'middle',formatter: contractStatusFormat},
            {title: '回款状态', field: 'paymentStatus',align: 'left', valign: 'middle',visible: false,formatter: paymentStatus},
            {title: '操作',field: 'operateFlag',align: 'center',events: operateEvents, formatter: genderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();
            // table操作列下拉菜单效果
            tableNav();
        },
        onLoadError: function (status) {
            if (status == 403) {
                $.alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                $.alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });

}

/**
 * 合同列表--回款状态
 */
function paymentStatus(value, row, index) {
    if(row.paymentStatus=='0'){
        return "未回款";
    }else if(row.paymentStatus=='1'){
        return "已回款";
    }else if(row.paymentStatus=='3'){
        return "部分回款"
    }
}


/**
 * 点击客户姓名跳转客户详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function customerNameFormat(value, row, index) {
    if(value == null) {
        return '<span href="JavaScript:void(0);">-</span>';
    }else {
        return '<a href="JavaScript:void(0);" onclick=\'customerDetail(\"'+row.customerId+'")\'>'+value+'</a>';
    }

}

function  customerDetail(customerId) {
    parent.$(parent.document).data('multitabs').create({
        iframe: true,
        title: '客户详情',
        url: "/front/user/customerManager/customerDetail?customerId=" + customerId
    },true);
}



/**
 * 点击联系人姓名跳转联系人详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contactNameFormat(value, row, index) {
    if(!value) {
        return '-';
    }
    return '<a href="JavaScript:void(0);"   onclick=\'contactDetail(\"'+row.contactName+'",\"'+row.contactDetails+'",\"'+row.customerId+'")\'>'+value+'</a>';
}

function  contactDetail(contactName,contactInformation,customerId) {
    var contactId = "";

    //查询联系人id,进行跳转
    $.ajax({
        url: '/contact/getContactId',
        type: 'POST',
        dataType: "json",
        data: {
            customerId: customerId,
            contactInformation : contactInformation,
            contactName : contactName
        },
        success: (function (data) {
            if (data.code == "000000") {
                if (data.data.contactId != null) {
                    contactId = data.data.contactId;
                    parent.$(parent.document).data('multitabs').create({
                        iframe: true,
                        title: '联系人详情',
                        url: "/front/user/contactManager/contactDetail?contactId=" + contactId
                    },true);
                }
            } else {
                alert("操作失败");
            }
        }),
        error: (function () {
            alert("失败");
        })
    });

}



/**
 * 合同状态
 */
function contractStatusFormat(value, row, index) {
    var spanImg;
    if (value == null || value == undefined) {
        return "-";
    }else{
        switch (value) {
            case "生效中":
                spanImg="<span class='img-all force-icon' title='' data-toggle='tooltip'>生效中</span>"
                break;
            case "未生效":
                spanImg="<span class='img-all no-force-icon' title='' data-toggle='tooltip'>未生效</span>"
                break;
            case "已结束":
                spanImg="<span class='img-all over-icon' title='' data-toggle='tooltip'>已结束</span>"
                break;
            case "已作废":
                spanImg="<span class='img-all invalid-icon' title='' data-toggle='tooltip'>已作废</span>"
                break;
            case "意外终止":
                spanImg="<span class='img-all accident-icon' title='' data-toggle='tooltip'>意外终止</span>"
                break;

        }
        return spanImg
    }

}


/**
 * 合同列表--自定义操作列内容
 */
function genderOpt(value, row, index) {
    let html = '';
    html += '<button class="btn btn-default" id="detail"><i class="mdi mdi-eye"></i>查看</button>';
    html += '<div class="dropdown" style="margin-right: -10px;">' +
        '         <button class="btn btn-link" data-index="' + index + '">' +
        '             <i class="mdi mdi-dots-vertical"></i>' +
        '         </button>' +
        '         <ul class="dropdown-menu">';
    if(row.whetherCheck == '1' && (row.contractStatus == '生效中' || row.contractStatus == '已结束')){//会员合同
        html += '<li><a href="#!" id="renew" data-toggle="modal" data-target="#addProductModal">续费</a></li>';
    }
    html += '<li><a href="#!" id="cancel">作废</a></li>';
    return html;
}



/**
 * 合同列表--自定义操作列事件
 */
window.operateEvents = {
    //查看点击事件--(followWay)跟进方式：1-线上电话；2-拜访 3-微信 4-线下电话 5-邮箱 6-陪访
    'click #customerFollowRecordDetail': function (e, value, row, index) {
        parent.$(parent.document).data('multitabs').create({
            iframe : true,
            title : '跟进详情',
            url : "/front/customerManager/customerFollowRecordDetail?followWay=" + row.followWay +"&clueFollowId=" + row.clueFollowId + "&type=1"
        }, true);
    },
    //合同查看点击事件
    'click #detail': function (e, value, row, index) {
        parent.$(parent.document).data('multitabs').create({
            iframe : true,
            title : '合同详情',
            url : "/front/contractManager/contractDetail?contractId=" + row.contractId + "&urlType=1"
            //url : "/front/contractManager/contractDetail?contractId=" + row.contractId
        }, true);
    },
    //合同作废
    'click #cancel': function (e, value, row, index) {
        if(row.contractStatus == "未生效"&row.paymentStatus == "0"){
            $.alert({
                title: '提示',
                content: "确定要作废吗？",
                buttons: {
                    confirm: {
                        text: '确认',
                        btnClass: 'btn-primary',
                        action: function () {
                            $.ajax({
                                type: "post",
                                url: "/customerContract/cancelCustomerContract",
                                data: {
                                    contractId: row.contractId,
                                    contractStatus: "4"
                                },
                                dataType: 'json',
                                success: function (data, status) {
                                    if (data.code == '000000') {
                                        $.alert('操作成功!');
                                        $customerContractTable.bootstrapTable('refreshOptions', {pageNumber: 1});
                                    } else {
                                        $.alert(data.message);
                                    }
                                },
                                error: function () {
                                    $.alert('修改失败，请稍后再试!');
                                }
                            });
                        }
                    },
                    cancel: {
                        text: '取消',
                        action: function () {
                        }
                    }
                }
            })
        }else{
            $.alert("只有未生效且未回款的合同才能作废");
        }
    },
    //合同查看点击事件
    'click #edit': function (e, value, row, index) {
        parent.$(parent.document).data('multitabs').create({
            iframe : true,
            title : '编辑合同详情',
            url : "/front/contractManager/userAddContract?contractId=" + row.contractId
        }, true);
    },
    //合同续费点击事件
    'click #renew': function (e, value, row, index) {
        contractId=row.contractId
        customerIdNum=row.customerId
        initList()
    },
    /*    //补充资料点击事件
        'click #addMaterial': function (e, value, row, index) {

        },*/
};


// 产品列表 - 添加产品弹窗列表
function initList(){
    $('#productListTable').bootstrapTable('destroy');
    // $('#productListTable').bootstrapTable('refresh');
    $('#productListTable').bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        // url: '/customerContract/selectContractRenewalInformation?contractId='+contractId,//请求地址
        url:"/customerMemberProduct/selectContractMemberProductList",
        // method: 'get',//请求方式
        method: 'post',//请求方式
        // contentType: "application/x-www-form-urlencoded",//请求内容类型
        contentType:"application/json;charset=utf-8",
        dataType: "json",                   // 数据类型
        striped: true,                      // 是否显示行间隔色
        sortable: true,                     // 是否启用排序
        sortOrder: "desc",                  // 排序方式
        sortName: 'createTm',               // 排序字段
        cache: false,                       // 是否使用缓存
        showColumns: false,                 // 显示隐藏列
        showRefresh: false,                 // 显示刷新按钮
        showToggle: false,                  // 切换显示样式
        showFooter: false,                  // 显示Table脚部
        pagination: true,                   // 是否显示分页
        showPaginationSwitch: false,        // 是否显示分页按钮
        clickToSelect: true,                // 是否启用点击选中行
        maintainSelected: true,             // 分页是否保留选中
        singleSelect: false,
        minimumCountColumns: 2,             // 最少要显示的列数
        undefinedText: '-',                  // cell没有值时显示
        sidePagination: "server",           // 分页方式：client客户端分页，server服务端分页
        // serverSort: true,
        uniqueId: 'customerProductId',
        idField: 'customerProductId',
        pageSize: 20,                        // 每页的记录行数
        pageNumber: 1,                      // 初始化加载第1页，默认第1页
        pageList: "[5, 10, 15, 20]",        // 可供选择的每页的行数

        queryParams: dataContract,//查询参数
        columns: [

            {title: '主键', field: 'customerProductId', visible: false},
            {checkbox: true, visible: true},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '产品类别', field: 'productCategories', align: 'left', valign: 'middle',visible: false},
            {title: '产品原价', field: 'productOriginalPrice', align: 'left', valign: 'middle'},
            {title: '产品单价', field: 'productUnitPrice', align: 'left', valign: 'middle'},
            {title: '产品会员价', field: 'productMemberPrice', align: 'left', valign: 'middle'},
            {title: '当前报价', field: 'productDiscountPrice', align: 'left', valign: 'middle', width: '160', events: productFormat.priceEvent, formatter: productFormat.discountPrice},
            {title: '产品数量', field: 'productNumber', align: 'left', valign: 'middle', width: '160', events: productFormat.numberEvent, formatter: productFormat.number},
            // {title: '操作', field: 'productOperation', align: 'right', valign: 'middle', width: '100', formatter: productFormat.operation},
            {title: '产品编码', field: 'productCode', visible: false},
        ],
        responseHandler: function (result) {
            if(result.code == "000000") {
                var obj = {
                    // "rows": result.data.productEditArr.list,
                    // "total": result.data.productEditArr.totalRecords//总条数
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };

                getCustomerContactPersonSelect(result.data.contactId);


            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {

        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                // alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}



//跟进记录
function followUpRecordTableInit(){
    //先销毁表格
    $followUpRecordTable.bootstrapTable('destroy');
    $followUpRecordTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/singleProductCustomer/selectClueFollowList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-/-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'clueFollowId',
        idField: 'clueFollowId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10,20,50]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                singleProductCustomerId :singleProductCustomerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'clueFollowId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', formatter: indexFormat},
            {title: '跟进方式', field: 'followWay', align: 'left', valign: 'middle',formatter: followWayFormat},
            {title: '跟进时间', field: 'followTm', align: 'left', valign: 'middle'},
            {title: '联系人姓名', field: 'contactName', align: 'left', valign: 'middle'},
            {title: '联系方式', field: 'contactInformation', align: 'left', valign: 'middle', formatter: contactFormat},
            {title: '意向判断', field: 'intentionJudgment', align: 'left', valign: 'middle'},
            {title: '跟进目的', field: 'followPurpose', align: 'left', valign: 'middle',formatter: followPurposeFormat},
            {title: '标签', field: 'tag', align: 'left', valign: 'middle'},
            {title: '产品类别', field: 'followProduct', align: 'left', valign: 'middle',formatter: followProductFormat},
            {title: '过程类别', field: 'followProcess', align: 'left', valign: 'middle',formatter: followProcessFormat},
            {title: '创建时间', field: 'createTm', align: 'left', valign: 'middle'},
            {title: '操作', field: 'operate', align: 'left',events: operateEvents, formatter: followUpRecordGenderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
        },
        onLoadError: function (status) {
            if (status == 403) {
                $.alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                $.alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * 合同列表--回款状态
 */
function paymentStatus(value, row, index) {
    if(row.paymentStatus=='0'){
        return "未回款";
    }else if(row.paymentStatus=='1'){
        return "已回款";
    }else if(row.paymentStatus=='3'){
        return "部分回款"
    }
}

/**
 * --列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}

/**
 * 跟进方式
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function followWayFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-/-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>线上电话</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>拜访</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>微信</span>";
    } else if (4 == value){
        return "<span class='label label-purple-light'>线下电话</span>";
    }else if (5 == value){
        return "<span class='label label-purple-light'>邮箱</span>";
    }else if (6 == value){
        return "<span class='label label-purple-light'>陪访</span>";
    }
}

/**
 * 跟进目的
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function followPurposeFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-/-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>产品跟进</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>过程跟进</span>";
    }
}

/**
 * 产品类别
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function followProductFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-/-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>会员</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>非会员</span>";
    }
}

/**
 * 过程类别
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function followProcessFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-/-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>询问意向</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>再次跟进</span>";
    }else if (3 == value) {
        return "<span class='label label-yellow-light'>成交</span>";
    }else if (4 == value) {
        return "<span class='label label-yellow-light'>意向关怀</span>";
    }
}

/**
 * 自定义操作列内容
 */
function followUpRecordGenderOpt(value, row, index) {
    var html = '<button type="button" id="customerFollowRecordDetail" class="btn btn-default"><i class="mdi mdi-eye"></i>查看</button>';
    return html;
}

/*window.operateEvents = {
    //查看点击事件--(followWay)跟进方式：1-线上电话；2-拜访 3-微信 4-线下电话 5-邮箱 6-陪访
    'click #customerFollowRecordDetail': function (e, value, row, index) {
        parent.$(parent.document).data('multitabs').create({
            iframe : true,
            title : '跟进详情',
            url : "/front/customerManager/customerFollowRecordDetail?followWay=" + row.followWay +"&clueFollowId=" + row.clueFollowId + "&type=1"
        }, true);
    }
};*/

//拜访记录
function visitRecordTableInit(){
    //先销毁表格
    $visitRecordTable.bootstrapTable('destroy');
    $visitRecordTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/singleProductCustomer/selectClueVisitRecordList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-/-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'clueVisitRecordId',
        idField: 'clueVisitRecordId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                singleProductCustomerId :singleProductCustomerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'clueVisitRecordId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', formatter: indexFormat},
            {title: '拜访目的', field: 'visitPurpose', align: 'left', valign: 'middle'},
            {title: '陪访人', field: 'accompanyingPerson', align: 'left', valign: 'middle'},
            {title: '拜访地址', field: 'visitAddress', align: 'left', valign: 'middle'},
            {title: '联系人', field: 'accompanyVisitPeople', align: 'left', valign: 'middle'},
            {title: '联系电话', field: 'contactInformation', align: 'left', valign: 'middle', formatter: contactFormat},
            {title: '职务', field: 'contactJob', align: 'left', valign: 'middle',formatter: contactPositionFormat},
            {title: '沟通时长(分)', field: 'communicationTime', align: 'left', valign: 'middle',formatter: TimeFormat},
            {title: '拜访详情', field: 'visitDetail', align: 'left', valign: 'middle'},
            {title: '创建时间', field: 'createTm', align: 'left', valign: 'middle'},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                $.alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                $.alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
        //无线循环取子表，直到子表里面没有记录
        onExpandRow: function (index, row, $Subdetail) {
            initSubTable(index, row, $Subdetail);
        }
    });
}
/**
 * 转换为分
 * @param value
 * @param row
 * @param index
 * @returns {number}
 * @constructor
 */
function TimeFormat(value, row, index) {
    var time = value/60;
    return time;
}

/**
 * 职务
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contactPositionFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-/-";
    } else if (0 == value) {
        return "<span class='label label-success-light'>公司管理</span>";
    } else if (1 == value) {
        return "<span class='label label-yellow-light'>财务</span>";
    }else if (2 == value) {
        return "<span class='label label-yellow-light'>人力</span>";
    }else if (3 == value) {
        return "<span class='label label-yellow-light'>其他</span>";
    }
}

//联系人
function contactsTableInit(){
    //先销毁表格
    $contactsTable.bootstrapTable('destroy');
    $contactsTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/singleProductCustomer/selectSingleProductCustomerContactList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'create_tm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'singleProductCustomerContactId',
        idField: 'singleProductCustomerContactId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5, 10, 15, 20]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                singleProductCustomerId : singleProductCustomerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'singleProductCustomerContactId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '姓名',field: 'contactName',align: 'left', valign: 'middle'},
            {title: '职务', field: 'contactPosition',  align: 'left', valign: 'middle',formatter: contactPositionFormat},
            {title: '在职情况', field: 'onTheJobSituation', align: 'left', valign: 'middle',formatter: poolTypeFormat},
            {title: '联系方式', field: 'contactInformation', align: 'left', valign: 'middle', formatter: contactFormat},
            {title: '邮箱', field: 'mailBox', align: 'left', valign: 'middle'},
            {title: '微信', field: 'weChat', align: 'left', valign: 'middle'},
            /*{title: '操作',field: 'operate',align: 'right', width: '80', formatter: genderOpt},*/
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                $.alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                $.alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}


/**
 * 功能：table表格联系电话中间四位星号替换，添加电话按钮
 * */
function contactFormat(value, row, index, field) {
    // console.log(value, row, index, field);
    // 手机号码中间四位替换为 *
    var contact = transTelNumber(value);
    var telBtn = '<button class="tel-button" onclick="callCenter(this);"><i class="mdi mdi-phone"></i></button>';
    // return contact + telBtn;
    // 判断是否有联系方式
    if (contact) {
        return contact + telBtn;
    } else {
        return;
    }
}

/**
 * 功能: 呼出拨号窗口
 * 参数: customerId-客户id contactData-联系人相关数据([{}]数组形式传递)
 * */
function callCenter(element) {
    var rowData = {};
    if (element) {
        var rowUniqueId = $(element).parents('tr').data('uniqueid');
        var $table = $(element).parents('table');
        rowData = $table.bootstrapTable('getRowByUniqueId', rowUniqueId);
    }

    console.log(rowData);

    var data = [{
        // contactId: rowData.contactId,
        contactName: rowData.contactName || rowData.accompanyVisitPeople,
        contactDetails: [rowData.contactInformation]
    }];  // 需要传递给电话弹窗的相关数据

    console.log(data)
    window.parent.callModal(customerId, data, 2, singleProductCustomerId);
}

/**
 * 职务
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contactPositionFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-/-";
    } else if (0 == value) {
        return "<span class='label label-success-light'>公司管理</span>";
    } else if (1 == value) {
        return "<span class='label label-yellow-light'>财务</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>人力</span>";
    } else {
        return "<span class='label label-yellow-light'>其他</span>";
    }
}

/**
 * 联系人类型(在职 0  离职 1)
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function poolTypeFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-/-";
    } else if (0 == value) {
        return "<span class='label label-success-light'>在职</span>";
    } else if (1 == value) {
        return "<span class='label label-info-light'>离职</span>";
    }
}

//新增联系人
function addSingleProductCustomerContact () {
    $("#addModel").find('input[type=text],select').each(function() {
        $(this).val('').selectpicker('refresh');
    });
    $('#addModel').modal('show');
}

//保存新增联系人
function saveSingleProductCustomerContact() {
    var contactName = $('#contactNameAdd').val(); //联系人姓名
    var contactInformation= $('#contactInformationAdd').val();  //联系方式
    var contactPosition= $('#contactPositionAdd').val();  //职务
    var isSeniorExecutive = $('#isSeniorExecutive').val();  //职务状态
    var onTheJobSituation = $('#onTheJobSituationAdd').val();  //在职情况
    var weChat = $('#weChatAdd').val();  //微信
    var mailBox = $('#mailBoxAdd').val();  //邮箱
    var singleProductCustomerId = $('#singleProductCustomerId').val();  //单品客户主键ID
    // 验证表单
    var bootstrapValidator = $("#addContactForm").data('bootstrapValidator');
    bootstrapValidator.validate();
    if (!bootstrapValidator.isValid()) {
        return;
    }
    //微信长度判断
    if (weChat.length > 50) {
        $.alert("微信长度不能大于50个字！");
        return;
    }
    //邮箱验证
    let reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    if(mailBox){
        if (!reg.test(mailBox)) {
            $.alert("请输入正确的邮箱格式！");
            return;
        } else if (mailBox.length > 50) {
            $.alert("邮箱长度不能大于50个字！");
            return;
        }
    }
    var jsonData = {
        contactName: contactName,  //联系人姓名
        contactInformation: contactInformation,  //联系方式
        contactPosition: contactPosition,  //职务
        isSeniorExecutive : parseInt(isSeniorExecutive),  //职务状态
        onTheJobSituation : parseInt(onTheJobSituation),  //在职情况
        weChat : weChat,  //微信
        mailBox : mailBox,  //邮箱
        singleProductCustomerId : singleProductCustomerId,  //单品客户主键ID
    };
    $.ajax({
        url: '/singleProductCustomer/addSingleProductCustomerContact',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.data == "S000000") {
                $.alert("操作成功！");
                $('#addModel').modal('hide');
                $contactsTable.bootstrapTable("refreshOptions", { pageNumber: 1 });
            } else if (data.data == "S000002") {
                $.alert("联系方式已存在！");
            } else {
                $.alert("操作失败");
            }
        }),
        error: (function () {
            $.alert("操作异常");
        })
    });
}